package com.ruoyi.finance.service.impl;

import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.finance.mapper.VoucherWordMapper;
import com.ruoyi.finance.domain.VoucherWord;
import com.ruoyi.finance.service.IVoucherWordService;

/**
 * 凭证字管理Service业务层处理
 *
 * @author ruoyi
 * @date 2025-03-03
 */
@Service
public class VoucherWordServiceImpl implements IVoucherWordService
{
    @Autowired
    private VoucherWordMapper voucherWordMapper;

    /**
     * 查询凭证字管理
     *
     * @param wordId 凭证字管理主键
     * @return 凭证字管理
     */
    @Override
    public VoucherWord selectVoucherWordByWordId(Long wordId)
    {
        return voucherWordMapper.selectVoucherWordByWordId(wordId);
    }

    /**
     * 查询凭证字管理列表
     *
     * @param voucherWord 凭证字管理
     * @return 凭证字管理
     */
    @Override
    public List<VoucherWord> selectVoucherWordList(VoucherWord voucherWord)
    {
        return voucherWordMapper.selectVoucherWordList(voucherWord);
    }

    /**
     * 新增凭证字管理
     *
     * @param voucherWord 凭证字管理
     * @return 结果
     */
    @Override
    public int insertVoucherWord(VoucherWord voucherWord)
    {
        voucherWord.setCreateTime(DateUtils.getNowDate());

        return voucherWordMapper.insertVoucherWord(voucherWord);
    }

    /**
     * 修改凭证字管理
     *
     * @param voucherWord 凭证字管理
     * @return 结果
     */
    @Override
    public int updateVoucherWord(VoucherWord voucherWord)
    {
        voucherWord.setUpdateTime(DateUtils.getNowDate());
        return voucherWordMapper.updateVoucherWord(voucherWord);
    }

    /**
     * 批量删除凭证字管理
     *
     * @param wordIds 需要删除的凭证字管理主键
     * @return 结果
     */
    @Override
    public int deleteVoucherWordByWordIds(Long[] wordIds)
    {
        return voucherWordMapper.deleteVoucherWordByWordIds(wordIds);
    }

    /**
     * 删除凭证字管理信息
     *
     * @param wordId 凭证字管理主键
     * @return 结果
     */
    @Override
    public int deleteVoucherWordByWordId(Long wordId)
    {
        VoucherWord voucherWord = voucherWordMapper.selectVoucherWordByWordId(wordId);
        Integer isDefault = voucherWord.getIsDefault();
       if(isDefault == 0){
           throw new RuntimeException("该凭证字为默认凭证字，不能删除");
       }
       return voucherWordMapper.deleteVoucherWordByWordId(wordId);
    }
}
